#include <stdint.h>
#include "stm32f4xx_hal.h"

volatile uint64_t g_sysTickCount = 0;

/**
***********************************************************
* @brief systick初始化
* @param
* @return 
***********************************************************
*/
void SystickInit(void)
{
	// 设置为1ms的定时周期
	HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8); // 180M/8=22.5MHz
	HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() / 1000);
	// 配置最低中断优先级并使能中断
	HAL_NVIC_SetPriority(SysTick_IRQn, 15, 0);
	HAL_NVIC_EnableIRQ(SysTick_IRQn);
}

void HAL_SYSTICK_Callback(void)
{
	g_sysTickCount++;
}

/**
***********************************************************
* @brief 获取系统的tick计数
* @param
* @return 以1ms为单位的总数
***********************************************************
*/
uint64_t GetSysTime(void)
{
	return g_sysTickCount;
}
